/**
 * Buffer : 处理二进制数据
 * 1个字节Byte = 8位bit    utf-8中一个字符=3个字节
 * 
 *  Buffer.alloc(buffer的长度,buffer的值,字符编码)  ：创建一个Buffer    Buffer.from() ...
 *  Buffer.equals(buffer)  ： 比较两个buffer是否相等
 *  Buffer.byteLength(string)  ： 返回字符串的字节长度
 *  Buffer.isBuffer(obj)   : 判断当前对象是否为Buffer类型
 *  Buffer.isEncoding('utf-8') : 判断Buffer支持的编码格式
 *  Buffer.write(要写入的字符串，从Buffer对象中的几位开始写入，写入的长度，写入的编码): 将字符串转成Buffer
 *  Buffer.toString() : 将Buffer装成String
 *  Buffer.slice(开始截取的索引，结束截取的索引)  ： 截取 Buffer ，截取的Buffer是引用关系，会对原有Buffer造成修改
 *  Buffer.copy() : 拷贝Buffer ，不会对原有的buffer造成影响
 * 
 * 
 */ 


//  let buf1 = new Buffer(10);    new Buffer()  已被弃用   应使用 Buffer.alloc() 创建
//  console.log(buf1)

let buf1 = Buffer.alloc(10)   // 声明一个 10个字节的
buf1[0] = 96                   // 输出形式 以 十六进制 输出
buf1[10] = 102                 // Buffer 一旦声明长度 则 无法添加长度
console.log(buf1)

let buf2 = Buffer.from('zxcvb')
let buf3 = Buffer.from('zxcvb')
console.log(buf2 == buf3)   // false  比较的是地址
console.log(buf2.equals(buf3))

let str4 = '扛狼'
let buf4 = Buffer.from('扛狼')
console.log('str4.length = '+str4.length)     // 2
console.log('buf4.length = '+buf4.length)    // 6    (utf-8中一个字符=3个字节)
console.log(Buffer.byteLength(str4))

